public class PlayerWallGrabState : PlayerToucingWallState
{
    public PlayerWallGrabState(Player player, PlayerSM stateMachine, PlayerData playerData, string animBoolName,
        Core core) : base(player, stateMachine, playerData, animBoolName, core)
    {
    }

    public override void AnimationFinshTrigger()
    {
        base.AnimationFinshTrigger();
    }

    public override void AnimationTrigger()
    {
        base.AnimationTrigger();
    }

    public override void DoChecks()
    {
        base.DoChecks();
    }

    public override void Enter()
    {
        base.Enter();

        _core.Movement.SetRigidbodyBodyTypeStatic();
        _isGrabed = true;
    }

    public override void Exit()
    {
        base.Exit();

        _isGrabed = false;
        _core.Movement.SetRigidbodyBodyTypeDynamic();
    }

    public override void LogicUpdate()
    {
        base.LogicUpdate();


        if (!_isExitingState)
        {
            if (_Yinput > 0)
                _stateMachine.ChangeState(_player.WallClimbState);
            else if (_Yinput < 0) //DELETE:|| _isGrabed 
                _stateMachine.ChangeState(_player.WallSlideState);
        }
    }

    public override void PhysicsUpdate()
    {
        base.PhysicsUpdate();
    }
}